Since the beginning of the written word, creators of documents have been concerned not only with how their words would sound to the ear if spoken, but also with how they appear to the eye when read. Before the advent of print, calligraphy was a major art form. With print, the art of creating and using fonts has superseded calligraphy in importance.
A font is a set of shapes representing each character in an alphanumeric character set. Usually the shapes of different characters in each font share certain characteristics, such as horizontal and vertical position of certain shape features, the general width of their vertical and horizontal strokes, and whether or not they are serifed, bold, or italic, so that the characters of a given font look appropriate together.
Commonly a font is identified by a basic font name, such as "Courier", "Arial", "Helvetica", or "Times New Roman" which identifies the general shapes of its characters, independent of size. These basic font names are often trademarks owned by the designers of the font. The basic font name is often followed by a point size designation which specifies the size of that font. Sometimes other words are inserted between the basic font name and the point size, such as "bold", which means its strokes are to be thicker; "narrow", which means its entire characters are to be made more narrow; "italic", which means its characters are to be slanted; or "oblique", which is used for sans serifed characters and means its characters are to be slanted.
The ability to vary fonts has many advantages. It lets a user vary the size of his letters to pack text more densely when necessary and to allow text to be more easily read. Using different fonts also has the ability to visually distinguish different parts of the text. This makes texts easier to scan and use. In addition, some texts are more visually pleasing than others, whereas some are easier to read. Different fonts appeal to different aesthetic senses. Some appear traditional, some modern, some art nouveau, some art deco, some hand written, some humorous, and some shocking. The ability to select from a wide variety of fonts greatly increases the ability to tune the aesthetic message of a document.
When the computer age started, most computers only represented text in one font. In the last decade or so, however, an increasing percentage of computer systems have the ability to display and print text in several different fonts. Most such computers have font resources which contain pre-defined font descriptions for the shape of each character of each of the fonts it can handle. The pre-defined font descriptions describe character shapes in a specified form or language.
Some font languages represent shapes as bitmap images which can be translated directly to the pixels on a video display or a laser printer. This has the advantage of being fast, but it has the disadvantage of requiring a different set of font descriptions for each different size.
More recently there has been a trend to scalable font languages. These languages define character shapes in terms of the one or more outlines which define its shape. Each such outline is defined by a move to a starting location and then a sequence of outline segments, each of which is either a line or a curve, such as a Quadratic or Cubic Bezier curve or a circular arc, followed by a move to the standard position for starting the next letter. A Bezier curve is a well-known type of curve defined by its two on-curve endpoints and one or two off-curve control points located between them. Quadratic Bezier curves only have one off-curve control point, with the curve at each endpoint being tangent to a line from that endpoint to the control point and with the angle of the curve reflecting the angle formed by those tangent lines. Cubic Bezier curves have two off-curve control points, with the curve at each endpoint being tangent to the line to its closest control point and with the curve's extent in the general direction of each such tangent near an endpoint being a function of the length from that endpoint to the tangent's associated control point. The lines and segments are usually defined in a resolution of either 1000.times.1000 or 2048.times.2048 units, called outline resolution units, or ORUs. Since these font descriptions define a shape in terms of lines and curves and since that definition is made with a high resolution, they can be used to generate font images of virtually any desired size.
In scalable font technology the set of font descriptions defining the outline shapes of each character in a character set can be considered a base, or physical, font. The variously sized fonts generated from such a physical font are considered logical fonts, because they do not have separate shape descriptions associated with their characters, but rather generate such shapes at the specified size from the scalable physical font description. Using such nomenclature, there would be, for example, physical font associated with the base font name "Arial", and that physical font would have associated with it any logical font which had the name "Arial" followed by a point size specification, such as "Arial 12" or "Afial 24". Normally a separate physical font is provided for font names which include "Bold", "Italic", or "Narrow", but fonts with the word "Oblique" in their name are often generated by slanting the shapes of the corresponding physical font, and the same could be done, if necessary for "Italic" if no corresponding italic physical or base font is provided.
There are currently several major scalable font languages. They include PostScript, developed by Adobe Systems Incorporated, of 1585 Charleston Road, Mountain View, Calif. 94039, TrueType, developed by Apple Computer, Inc., 20525 Mariani Avenue, Cupertino, Calif. 95014; Speedo, developed by Bitstream Inc., the assignee of this application; and Intellifont, developed by the AGFA division of Miles Inc, 90 Industrial Way, Wilmington, Mass. 01887. Each of these languages uses a different code or format to describe shapes and represents shapes in different ways. For example, TrueType uses quadratic Bezier curves to define the shape of curve segments, whereas PostScript and Speedo use Cubic Bezier curves, and Intellifont use circular arcs.
For a computer to render a font named in a given document, it requires not only a bitmapped or scalable font description of that font's characters, but also software, called a font interpreter, that knows how to interpret the particular code in which each font language's font descriptions are written and convert them into a bitmap pattern or a sequence of moves and outline segments.
Unfortunately, not all computers have the same font descriptions or the ability to interpret the same font languages. This creates a problem if an electronic document is created on a first computer using one or more given fonts and is then transferred to second computer which does not have those fonts or which cannot interpret them. In such a case, when the document is shown or printed on the second computer it has different fonts than intended. This can cause the document to have a very different, and often undesired appearance, and can disrupt its spacing and pagination. In highly formatted text, such a text with columns, this can make the text almost unreadable. In addition, some fonts have special characters not found in other fonts, or use different character codes than are commonly used in other fonts so that such a font mismatch can not only disrupt the appearance and organization of a document, but can also cause information to be lost or be garbled.
One solution to the problem of making fonted text portable is to send a copy of all fonts and font interpreters needed to properly render the characters of a document along with it. Unfortunately this has many problems. First, finding out what fonts and interpreters need to be sent with each such document and installing them on the viewing machine would be labor intensive. Furthermore, it would present legal problems because, even though the actual shape of fonts have long been held not to be copyrightable, both the code and sequence of outline segments contained in font descriptions have been considered by many to be copyrightable, and thus cannot be installed in a new machine without legal permission.
There have been multiple prior attempts to deal with this problem.
A first prior approach is to use software that enables the computer playing back a document to attempt to approximate a font called for in the document with a font which is similar, if it has one. Such systems attempt to replace one serifed font with another, one italic with another, and so on. Unfortunately, this approach still requires that the computer playing back a document have fonts which approximate those it is to replace, and the approximations are often disappointing.
Another prior technique amplifies this first approach by using software that sends information along with documents explaining the size of each character in each of the fonts used. This enables corresponding software in the playing computer to stretch or compress whatever font it is using to approximate a missing font to produce a font which has the same spacing. This provides the valuable advantage of preventing the formatting of documents from being upset due to spacing differences, but is still is only an approximation.
Another prior approach has been to embed, or include, font descriptions with the document so the party at the other end can use them. The makers of such embeddable fonts have designed them so they can only be used in the document in which they have been included and thus have granted a license for such a copy of their font descriptions to be made without requiring express permission. Unfortunately, all such systems of which we are aware only work with fonts of one language and assume that the computer on which their documents are to be played has interpreters for that language. Thus the documents produced cannot be properly reproduced if the machine playing them back does not have the proper font interpreter and it even if does, it can only provide insured portability for fonts written in that interpreter's one language.
Another prior approach is to have a document recorder application which records bitmap images of all character-font shapes included in a document from the font interpreter of the computer creating the document and embeds them in a copy of the document. The resulting portable document is designed to be viewed or printed from a player application on another computer. The player renders the shape of each character in the document from its associated embedded font. The program has the ability to, in effect, creates bitmapped physical and logical fonts. That is, if the user decides he or she does not want to have to store separate bitmap images for the same shape font in different sizes, the system will store it in one size and on playback attempt to generate bitmap patterns at different sizes from it.
This approach appears to avoid copyright problems, because it has long been held that the shape of fonts is not copyrightable and the bitmap patterns copied are determined largely by the shape of the font's original pre-defined font descriptions rather than from the actual code or sequence of moves and outline segments used in that description. It also has that advantage of being able to play back any font handled by the computer creating the document. It has the disadvantages of requiring a large amount of memory to produce a large variety of fonts accurately.